package com.auto.survey.activity.monitoring.entity

import androidx.room.Entity
import androidx.room.ForeignKey
import androidx.room.Index
import androidx.room.PrimaryKey

/**
 * 测站实体类，对应数据库中的MonitoringStation表
 * 每个测站属于一个特定监测对象
 */
@Entity(
    tableName = "MonitoringStation",
    foreignKeys = [
        ForeignKey(
            entity = MonitoringObject::class,
            parentColumns = ["id"],
            childColumns = ["monitoringObjectId"],
            onDelete = ForeignKey.CASCADE
        )
    ],
    indices = [Index(value = ["monitoringObjectId"])]
)
data class MonitoringStation(
    /**
     * 测站ID，主键，自增长
     */
    @PrimaryKey(autoGenerate = true) val id: Int = 0,
    /**
     * 所属监测对象ID，外键关联ATS_Monitoring表
     */
    val monitoringObjectId: Int,
    /**
     * 测站名称
     */
    val stationName: String,
    /**
     * 测站编码
     */
    val stationCode: String,
    /**
     * 测站X坐标
     */
    var stationX: Double,
    /**
     * 测站Y坐标
     */
    var stationY: Double,
    /**
     * 测站Z坐标（高程）
     */
    var stationZ: Double,
    /**
     * 仪器高（测站到全站仪中心的高度）
     */
    var stationHeight: Double,
    /**
     * 测站描述
     */
    val stationDescription: String,
    /**
     * 是否为基准站
     */
    val isReferenceStation: Boolean,
    /**
     * 创建时间，格式：YYYY-MM-DD HH:MM:SS
     */
    val createTime: String,
    /**
     * 更新时间，格式：YYYY-MM-DD HH:MM:SS
     */
    val updateTime: String
)